/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.clyme.expediente.servicios;

import com.clyme.expediente.dao.TipoExpedienteDao;
import com.clyme.expediente.daoImpl.TipoExpedienteDaoImpl;
import com.clyme.expediente.entidad.LineaTrabajo;
import com.clyme.expediente.entidad.TipoExpediente;
import com.clyme.expediente.hibernate.HibernateConexion;
import com.clyme.expediente.utilitarios.IConexion;
import com.clyme.expediente.utilitarios.Utilitario;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author SAM
 */
public class TipoExpedienteServicios {
    
    TipoExpedienteDao<TipoExpediente> daoTipo;
    IConexion conexion;
    
    public TipoExpedienteServicios()
    {
        conexion = new HibernateConexion();
        daoTipo = new TipoExpedienteDaoImpl(conexion);
    }
    
    public TipoExpediente obtenerTipo(Integer id)
    {
        conexion.beginConexion();
        TipoExpediente tipo = daoTipo.buscarPorId(TipoExpediente.class, id);
        conexion.closeConexion();
        return tipo;
    }
    
    public void registrarTipo(TipoExpediente tipo)
    {
        tipo.setHabilitado(Short.valueOf("1"));
        conexion.beginTransaccion();
        daoTipo.agregar(tipo);
        conexion.closeTransaccion();
        Utilitario.enviarMensajeGlobalValido("Se ha registrado correctamente");
    }
    
    public void actualizarTipo(TipoExpediente tipo)
    {
        conexion.beginTransaccion();
        daoTipo.actualizar(tipo);
        conexion.closeTransaccion();
        Utilitario.enviarMensajeGlobalValido("Se ha actualizado correctamente");
    }
    
    public void eliminarTipo(TipoExpediente tipo)
    {
        tipo.setHabilitado(Short.valueOf("0"));
        conexion.beginTransaccion();
        daoTipo.actualizar(tipo);
        conexion.closeTransaccion();
        Utilitario.enviarMensajeGlobalValido("Se ha eliminado correctamente");
    }
    
    public List<TipoExpediente> obtenerTodos()
    {
        conexion.beginConexion();
        List<TipoExpediente> tipos = new ArrayList<TipoExpediente>();
        tipos = daoTipo.obtenerTodosActivos(TipoExpediente.class);
        conexion.closeConexion();
        return tipos;
    }
    
    public TipoExpediente obtenerTipoExpediente(Integer id)
    {
        TipoExpediente tipo = null;
        conexion.beginConexion();
        tipo = daoTipo.buscarPorId(TipoExpediente.class, id);
        conexion.closeConexion();
        return tipo;
    }
    
}
